package com.durian.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.durian.common.core.annotation.Excel;
import com.durian.common.core.web.domain.BaseEntity;

/**
 * 企业账户流水明细(企业账户变动历史记录)对象 t_cw_balance
 * 
 * @author durian
 * @date 2022-06-21
 */
public class TCwBalance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 自增 */
    private Long id;

    /** 商户ID */
    @Excel(name = "商户ID")
    private Long businessId;

    /** 商户名称 */
    @Excel(name = "商户名称")
    private String businessName;

    /** 流水操作类型(画面查询显示用),1：收入，2：支出 */
    @Excel(name = "流水操作类型(画面查询显示用),1：收入，2：支出")
    private Integer balanceType;

    /** 操作类型,1：充值（企业充值），2：提现（企业提现），3：收款（企业收款计划），4：付款（企付款款计划） */
    @Excel(name = "操作类型,1：充值", readConverterExp = "企=业充值")
    private Integer operationType;

    /** 操作业务订单ID，业务订单ID（收/付款计划ID，提现的时候，为提现申请单号，充值就是充值单号） */
    @Excel(name = "操作业务订单ID，业务订单ID", readConverterExp = "收=/付款计划ID，提现的时候，为提现申请单号，充值就是充值单号")
    private Long ywOrderId;

    /** 业务订单号(收付款计划号，提现申请单号，充值单号) */
    @Excel(name = "业务订单号(收付款计划号，提现申请单号，充值单号)")
    private String ywOrderNo;

    /** 支付订单ID, 对应的支付订单（t_cw_pay_order）流水ID，无流水的时候无 */
    @Excel(name = "支付订单ID, 对应的支付订单", readConverterExp = "t=_cw_pay_order")
    private Long payOrderId;

    /** 支付订单号（操作订单号），对应的支付订单（t_cw_pay_order）流水号，无流水的时候无 */
    @Excel(name = "支付订单号", readConverterExp = "操=作订单号")
    private String payOrderNo;

    /** 操作明细（收付款的时候，根据款项来，充值就是充值，提现就是提现） */
    @Excel(name = "操作明细", readConverterExp = "收=付款的时候，根据款项来，充值就是充值，提现就是提现")
    private String opItem;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date opTime;

    /** 操作金额
,负数时为减 */
    @Excel(name = "操作金额 ,负数时为减")
    private BigDecimal amount;

    /** 新的余额 */
    @Excel(name = "新的余额")
    private BigDecimal balance;

    /** 合同ID，有对应的合同的时候记录 */
    @Excel(name = "合同ID，有对应的合同的时候记录")
    private Long contractId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNo;

    /** 合同类型, 1：收房合同，2：出房合同 */
    @Excel(name = "合同类型, 1：收房合同，2：出房合同")
    private Integer contractType;

    /** 状态编码（预留字段，因为来源比较多，状态不固定，暂时不用，直接用状态名称来显示，） */
    @Excel(name = "状态编码", readConverterExp = "预=留字段，因为来源比较多，状态不固定，暂时不用，直接用状态名称来显示，")
    private Integer statusCode;

    /** 状态（由对应业务处理情况实时更新） */
    @Excel(name = "状态", readConverterExp = "由=对应业务处理情况实时更新")
    private String statusName;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private BigDecimal reserve1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private Long reserve2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    private String reserve3;

    /** 预留字段4 */
    @Excel(name = "预留字段4")
    private String reserve4;

    /** 预留字段5 */
    @Excel(name = "预留字段5")
    private String reserve5;

    /** 删除标识,0:未删除，1：删除 */
    @Excel(name = "删除标识,0:未删除，1：删除")
    private Integer delFlg;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long createUserid;

    /** 更新用户ID */
    @Excel(name = "更新用户ID")
    private Long updateUserid;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setBusinessId(Long businessId) 
    {
        this.businessId = businessId;
    }

    public Long getBusinessId() 
    {
        return businessId;
    }
    public void setBusinessName(String businessName) 
    {
        this.businessName = businessName;
    }

    public String getBusinessName() 
    {
        return businessName;
    }
    public void setBalanceType(Integer balanceType) 
    {
        this.balanceType = balanceType;
    }

    public Integer getBalanceType() 
    {
        return balanceType;
    }
    public void setOperationType(Integer operationType) 
    {
        this.operationType = operationType;
    }

    public Integer getOperationType() 
    {
        return operationType;
    }
    public void setYwOrderId(Long ywOrderId) 
    {
        this.ywOrderId = ywOrderId;
    }

    public Long getYwOrderId() 
    {
        return ywOrderId;
    }
    public void setYwOrderNo(String ywOrderNo) 
    {
        this.ywOrderNo = ywOrderNo;
    }

    public String getYwOrderNo() 
    {
        return ywOrderNo;
    }
    public void setPayOrderId(Long payOrderId) 
    {
        this.payOrderId = payOrderId;
    }

    public Long getPayOrderId() 
    {
        return payOrderId;
    }
    public void setPayOrderNo(String payOrderNo) 
    {
        this.payOrderNo = payOrderNo;
    }

    public String getPayOrderNo() 
    {
        return payOrderNo;
    }
    public void setOpItem(String opItem) 
    {
        this.opItem = opItem;
    }

    public String getOpItem() 
    {
        return opItem;
    }
    public void setOpTime(Date opTime) 
    {
        this.opTime = opTime;
    }

    public Date getOpTime() 
    {
        return opTime;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setBalance(BigDecimal balance) 
    {
        this.balance = balance;
    }

    public BigDecimal getBalance() 
    {
        return balance;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setContractType(Integer contractType) 
    {
        this.contractType = contractType;
    }

    public Integer getContractType() 
    {
        return contractType;
    }
    public void setStatusCode(Integer statusCode) 
    {
        this.statusCode = statusCode;
    }

    public Integer getStatusCode() 
    {
        return statusCode;
    }
    public void setStatusName(String statusName) 
    {
        this.statusName = statusName;
    }

    public String getStatusName() 
    {
        return statusName;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setReserve1(BigDecimal reserve1) 
    {
        this.reserve1 = reserve1;
    }

    public BigDecimal getReserve1() 
    {
        return reserve1;
    }
    public void setReserve2(Long reserve2) 
    {
        this.reserve2 = reserve2;
    }

    public Long getReserve2() 
    {
        return reserve2;
    }
    public void setReserve3(String reserve3) 
    {
        this.reserve3 = reserve3;
    }

    public String getReserve3() 
    {
        return reserve3;
    }
    public void setReserve4(String reserve4) 
    {
        this.reserve4 = reserve4;
    }

    public String getReserve4() 
    {
        return reserve4;
    }
    public void setReserve5(String reserve5) 
    {
        this.reserve5 = reserve5;
    }

    public String getReserve5() 
    {
        return reserve5;
    }
    public void setDelFlg(Integer delFlg) 
    {
        this.delFlg = delFlg;
    }

    public Integer getDelFlg() 
    {
        return delFlg;
    }
    public void setCreateUserid(Long createUserid) 
    {
        this.createUserid = createUserid;
    }

    public Long getCreateUserid() 
    {
        return createUserid;
    }
    public void setUpdateUserid(Long updateUserid) 
    {
        this.updateUserid = updateUserid;
    }

    public Long getUpdateUserid() 
    {
        return updateUserid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("businessId", getBusinessId())
            .append("businessName", getBusinessName())
            .append("balanceType", getBalanceType())
            .append("operationType", getOperationType())
            .append("ywOrderId", getYwOrderId())
            .append("ywOrderNo", getYwOrderNo())
            .append("payOrderId", getPayOrderId())
            .append("payOrderNo", getPayOrderNo())
            .append("opItem", getOpItem())
            .append("opTime", getOpTime())
            .append("amount", getAmount())
            .append("balance", getBalance())
            .append("contractId", getContractId())
            .append("contractNo", getContractNo())
            .append("contractType", getContractType())
            .append("statusCode", getStatusCode())
            .append("statusName", getStatusName())
            .append("remarks", getRemarks())
            .append("reserve1", getReserve1())
            .append("reserve2", getReserve2())
            .append("reserve3", getReserve3())
            .append("reserve4", getReserve4())
            .append("reserve5", getReserve5())
            .append("delFlg", getDelFlg())
            .append("createUserid", getCreateUserid())
            .append("createTime", getCreateTime())
            .append("updateUserid", getUpdateUserid())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
